def write_api_use_cnt(api_use_cnt):
    # 按使用次数排序
    api_use_cnt = dict(sorted(api_use_cnt.items(), key=lambda item: item[1], reverse=True))
    file = open(file='./res/api_use_cnt.csv', mode='w', encoding='utf8')
    file.write('API 地址\t使用次数\n')
    for key in api_use_cnt.keys():
        line = str(key) + '\t' + str(api_use_cnt[key]) + '\n'
        file.write(line)
    file.close()
    print('API 使用次数情况已输出到 ./res/api_use_cnt.csv')


def write_api_provider_cnt(api_prov_cnt):
    # 按提供个数排序
    api_prov_cnt = dict(sorted(api_prov_cnt.items(), key=lambda item: item[1], reverse=True))
    file = open(file='./res/api_provider_cnt.csv', mode='w', encoding='utf8')
    file.write('供应商名称\t提供 API 个数\n')
    for key in api_prov_cnt.keys():
        line = str(key) + '\t' + str(api_prov_cnt[key]) + '\n'
        file.write(line)
    file.close()
    print('Web API 提供商发布的 API 个数情况已输出到 ./res/api_provider_cnt.csv')


def write_category_rate(cate_rate, cate_cnt):
    # 按使用率排序
    cate_rate = dict(sorted(cate_rate.items(), key=lambda item: item[1], reverse=True))
    file = open(file='./res/category_use_rate.csv', mode='w', encoding='utf8')
    file.write('API 类别\t该类别 Mashup 调用的 API 个数\t该类别 API 总数\t该类别 API 在 Mashup 中的实际使用率\n')
    for key in cate_rate.keys():
        rate = cate_rate[key] * float(100)
        line = str(key) + '\t' + str(cate_cnt[key][0]) + '\t' + str(cate_cnt[key][1]) + '\t' + str(
            round(rate, 2)) + '%\n'
        file.write(line)
    file.close()
    print('不同类别 API 在 Mashup 中的使用率已输出到 ./res/category_use_rate.csv')
    return cate_rate  # 返回排序后的结果


def write_api_type_cnt(api_type_cnt):
    # 按使用次数排序
    cnt_sum = 0
    api_type_rate = {}
    api_type_cnt = dict(sorted(api_type_cnt.items(), key=lambda item: item[1], reverse=True))
    file = open(file='./res/api_type_rate.csv', mode='w', encoding='utf8')
    file.write('API 类型组合\t出现次数\t出现次数占比\n')
    for key in api_type_cnt.keys():
        cnt_sum += api_type_cnt[key]
    for types in api_type_cnt.keys():
        comb = ''
        for t in types:
            comb += ' + ' + t
        rate = round(float(api_type_cnt[types]) / float(cnt_sum), 4)
        line = comb[3:] + '\t' + str(api_type_cnt[types]) + '\t' + str(rate * 100) + '%\n'
        file.write(line)
        api_type_rate[comb[3:]] = rate
    file.close()
    print('不同类型组合 API 在 Mashup 中的使用率已输出到 ./res/api_type_rate.csv')
    return api_type_rate
